home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Primal 3D Interactive Se…es (Professional Edition)
/
Interactive Spine CD
/
SPINE.bin
/
shared
/
dbutils.lua
< prev
next >
Wrap
Text File
|
2001-09-18
|
23KB
|
475 lines
-- dbutils.lua
-- for Spine
resMap = {}
resMap["483"] = {c = "helptext"}
resMap["513"] = {c = "labeltextanat"}
resMap["514"] = {c = "labeltextpath"}
resMap["3320"] = {c = "surfmovies"}
resMap["3874"] = {c = "illustrations"}
resMap["3881"] = {c = "clinslides"}
resMap["3882"] = {c = "illustrations"}
resMap["3883"] = {c = "dissslides"}
resMap["3886"] = {c = "vhslides"}
resMap["388700"] = {c = "mraxial0", s = "38870001", cs = "getMrModelLink('aa000','lvl',%s)"}
resMap["388701"] = {c = "mraxial1", s = "38870101", cs = "getMrModelLink('ba000','lvl',%s)"}
resMap["388702"] = {c = "mraxial2", s = "38870201", cs = "getMrModelLink('ca000','lvl',%s)"}
resMap["388710"] = {c = "mrsagittal0", s = "38871001", cs = "getMrModelLink('da000','lvl',%s)"}
resMap["388711"] = {c = "mrsagittal1", s = "38871101", cs = "getMrModelLink('ea000','lvl',%s)"}
resMap["388712"] = {c = "mrsagittal2", s = "38871201", cs = "getMrModelLink('fa000','lvl',%s)"}
resMap["388720"] = {c = "mrcoronal0", s = "38872001", cs = "getMrModelLink('ga000','lvl',%s)"}
resMap["388721"] = {c = "mrcoronal1", s = "38872101", cs = "getMrModelLink('ha000','lvl',%s)"}
resMap["388722"] = {c = "mrcoronal2", s = "38872201", cs = "getMrModelLink('ia000','lvl',%s)"}
resMap["a"] = {c = "csaxial0", s = "aa000", t = "getSliceModelTitle('Axial Cervical Model', %s)", i = "getModelImage(%s)", o = "getModelOverlay(%s)", mr = "getModelMrLink(38870001,%s)", th = "model.png"}
resMap["b"] = {c = "csaxial1", s = "ba000", t = "getSliceModelTitle('Axial Thoracic Model', %s)", i = "getModelImage(%s)", o = "getModelOverlay(%s)", mr = "getModelMrLink(38870101,%s)", th = "model.png"}
resMap["c"] = {c = "csaxial2", s = "ca000", t = "getSliceModelTitle('Axial Lumbar Model', %s)", i = "getModelImage(%s)", o = "getModelOverlay(%s)", mr = "getModelMrLink(38870201,%s)", th = "model.png"}
resMap["d"] = {c = "cssagittal0", s = "da000", t = "getSliceModelTitle('Sagittal Cervical Model', %s)", i = "getModelImage(%s)", o = "getModelOverlay(%s)", mr = "getModelMrLink(38871001,%s)", th = "model.png"}
resMap["e"] = {c = "cssagittal1", s = "ea000", t = "getSliceModelTitle('Sagittal Thoracic Model', %s)", i = "getModelImage(%s)", o = "getModelOverlay(%s)", mr = "getModelMrLink(38871101,%s)", th = "model.png"}
resMap["f"] = {c = "cssagittal2", s = "fa000", t = "getSliceModelTitle('Sagittal Lumbar Model', %s)", i = "getModelImage(%s)", o = "getModelOverlay(%s)", mr = "getModelMrLink(38871201,%s)", th = "model.png"}
resMap["g"] = {c = "cscoronal0", s = "ga000", t = "getSliceModelTitle('Coronal Cervical Model', %s)", i = "getModelImage(%s)", o = "getModelOverlay(%s)", mr = "getModelMrLink(38872001,%s)", th = "model.png"}
resMap["h"] = {c = "cscoronal1", s = "ha000", t = "getSliceModelTitle('Coronal Thoracic Model', %s)", i = "getModelImage(%s)", o = "getModelOverlay(%s)", mr = "getModelMrLink(38872101,%s)", th = "model.png"}
resMap["i"] = {c = "cscoronal2", s = "ia000", t = "getSliceModelTitle('Coronal Lumbar Model', %s)", i = "getModelImage(%s)", o = "getModelOverlay(%s)", mr = "getModelMrLink(38872201,%s)", th = "model.png"}
resMap["q"] = {c = "model0", s = "qa000", t = "getModelTitle('Vertebral Column', %s)", i = "getModelImage(%s)", o = "getModelOverlay(%s)", th = "model.png"}
resMap["r"] = {c = "model1", s = "ra000", t = "getModelTitle('Cervical Vertebral Spine', %s)", i = "getModelImage(%s)", o = "getModelOverlay(%s)", th = "model.png"}
resMap["t"] = {c = "model3", s = "ta000", t = "getModelTitle('Thoracic Vertebral Spine', %s)", i = "getModelImage(%s)", o = "getModelOverlay(%s)", th = "model.png"}
resMap["v"] = {c = "model5", s = "va000", t = "getModelTitle('Lumbar Vertebral Spine', %s)", i = "getModelImage(%s)", o = "getModelOverlay(%s)", th = "model.png"}
resMap["x"] = {c = "model7", s = "xa000", t = "getModelTitle('Sacral Region', %s)", i = "getModelImage(%s)", o = "getModelOverlay(%s)", th = "model.png"}
resMap["za"] = {c = "modelx0", s = "za000", t = "'Occipital Bone'", i = "getModelImage(%s)", o = "getModelOverlay(%s)", th = "model.png"}
resMap["zb"] = {c = "modelx1", s = "zb000", t = "'C4 Vertebra'", i = "getModelImage(%s)", o = "getModelOverlay(%s)", th = "model.png"}
resMap["zc"] = {c = "modelx2", s = "zc000", t = "'T6 Vertebra'", i = "getModelImage(%s)", o = "getModelOverlay(%s)", th = "model.png"}
resMap["zd"] = {c = "modelx3", s = "zd000", t = "'L2 Vertebra'", i = "getModelImage(%s)", o = "getModelOverlay(%s)", th = "model.png"}
resMap["ze"] = {c = "modelx4", s = "ze000", t = "'Ligament Flava'", i = "getModelImage(%s)", o = "getModelOverlay(%s)", th = "model.png"}
resMap["zf"] = {c = "modelx5", s = "zf000", t = "'Posterior Longitudinal Lig.'", i = "getModelImage(%s)", o = "getModelOverlay(%s)", th = "model.png"}
resMap["zg"] = {c = "modelx6", s = "zg000", t = "'Atlanto-Occipital Joint'", i = "getModelImage(%s)", o = "getModelOverlay(%s)", th = "model.png"}
resMap["zh"] = {c = "modelx7", s = "zh000", t = "'Cranio-Vertebral Junction'", i = "getModelImage(%s)", o = "getModelOverlay(%s)", th = "model.png"}
resMap["zi"] = {c = "modelx8", s = "zi000", t = "'Typical Sacrum'", i = "getModelImage(%s)", o = "getModelOverlay(%s)", th = "model.png"}
resMap["zj"] = {c = "modelx9", s = "zj000", t = "'Intervertebral Foramina'", i = "getModelImage(%s)", o = "getModelOverlay(%s)", th = "model.png"}
resMap["zk"] = {c = "modelx10", s = "zk000", t = "'Spinal Cord (Cervical Region)'", i = "getModelImage(%s)", o = "getModelOverlay(%s)", th = "model.png"}
resMap["zl"] = {c = "modelx11", s = "zl000", t = "'Basivertebral Veins (Lumbar)'", i = "getModelImage(%s)", o = "getModelOverlay(%s)", th = "model.png"}
resMap["zm"] = {c = "modelx12", s = "zm000", t = "'Neck Muscles'", i = "getModelImage(%s)", o = "getModelOverlay(%s)", th = "model.png"}
-----------------------------------
seqGetModelIndexPos = function (resId)
local g, l, num = splitModelResId(resId)
return tonumber(num)
end
seqMakeResModelIndex = function (resId, pos)
local group, subGrp, i = splitModelResId(resId)
return makeModelResId(group, subGrp, pos)
end
seqGetModelSubGrpPos = function (resId)
local g, subGrp, n = splitModelResId(resId)
return strbyte(subGrp) - strbyte('a')
end
seqMakeResModelSubGrp = function (resId, pos)
local group, s, idx = splitModelResId(resId)
return makeModelResId(group, strchar(strbyte('a') + pos), idx)
end
seqGetSlicePos = function (resId, base, step)
if not step then step = 10 end
return (resId - base) / step
end
seqMakeResSlice = function (resId, pos, base, step)
if not step then step = 10 end
return pos * step + base
end
seqGetViewPos = function (resId, viewTbl)
local checkTable = function (idx, val)
if strfind(%resId, val, 1, 1) == 1 then
return idx - 1
else
return nil
end
end
local pos = foreach(viewTbl, checkTable)
if not pos then
return nil
else
return pos
end
end
seqMakeResView = function (resId, pos, viewTbl)
return getStartLink(viewTbl[pos+1])
end
seqGetPrfxPos = function (resId, prfxTbl)
local checkTable = function (idx, val)
if strfind(%resId, val, 1, 1) == 1 then
return idx - 1
else
return nil
end
end
local pos = foreach(prfxTbl, checkTable)
if not pos then
return nil
else
return pos
end
end
seqMakePrfx = function (resId, pos, prfxTbl)
return prfxTbl[pos+1]..strsub(resId, strlen(prfxTbl[pos+1])+1)
end
-- Product specific funcs
vhpGetSlicePos = function (resId)
local pos = seqGetSlicePos(resId, 38860037,4)
if pos >= 23 then pos = pos - 1 end
return pos
end
vhpMakeResSlice = function (resId,pos)
local newpos = pos
if newpos >= 22 then newpos = newpos + 1 end
return seqMakeResSlice(resId,newpos,38860037,4)
end
--
mainViewSeq = {"q","r","t","v","x","za","zb","zc","zd","zi","ze","zf","zg","zh","zj","zk","zl","zm"}
radViewSeq = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "q"}
mrViewSeq = {"388700", "388701", "388702", "388710", "388711", "388712", "388720", "388721", "388722"}
mrViewTitles = {"Axial Cervical", "Axial Thoracic", "Axial Lumbar", "Sagittal Cervical", "Sagittal Thoracic", "Sagittal Lumbar", "Coronal Cervical", "Coronal Thoracic", "Coronal Lumbar"}
textTypeSeq = {"513", "514"}
layerTitles = {"Layer 1", "Layer 2", "Layer 3", "Layer 4", "Layer 5", "Layer 6", "Layer 7", "Layer 8", "Layer 9", "Layer 10", "Layer 11", "Layer 12", "Layer 13", "Layer 14", "Layer 15", "Surface anatomy", "Cutaneous distribution", "Dermatome distribution", "Arteries in overview", "Veins in overview", "Nerves in overview", "Neurovascular structures"}
seqTable = {
{name = "texttype", inFunc = "seqGetPrfxPos(%s, textTypeSeq)", posFunc = function (resId) return seqGetPrfxPos(resId, textTypeSeq) end, makeFunc = function (resId,pos) return seqMakePrfx(resId,pos,textTypeSeq) end, len = getn(textTypeSeq)},
{name = "mainview", inFunc = "seqGetViewPos(%s, mainViewSeq)", posFunc = function (resId) return seqGetViewPos(resId, mainViewSeq) end, makeFunc = function (resId,pos) return seqMakeResView(resId,pos,mainViewSeq) end, len = getn(mainViewSeq)},
{name = "radview", inFunc = "seqGetViewPos(%s, radViewSeq)", posFunc = function (resId) return seqGetViewPos(resId, radViewSeq) end, makeFunc = function (resId,pos) return seqMakeResView(resId,pos,radViewSeq) end, len = getn(radViewSeq)},
{name = "mrview", inFunc = "seqGetPrfxPos(%s, mrViewSeq)", posFunc = function (resId) return seqGetPrfxPos(resId, mrViewSeq) end, makeFunc = function (resId,pos) return seqMakePrfx(resId,pos,mrViewSeq) end, len = getn(mrViewSeq), pttl = mrViewTitles},
{name = "main", inFunc = "beginsWith(%s, '38860')", posFunc = vhpGetSlicePos, makeFunc = vhpMakeResSlice, loop = 1, len = 43},
{name = "main", inFunc = "beginsWith(%s, '388700')", posFunc = function (resId) return seqGetSlicePos(resId,38870001,1) end, makeFunc = function (resId,pos) return seqMakeResSlice(resId,pos,38870001,1) end, len = 27},
{name = "main", inFunc = "beginsWith(%s, '388701')", posFunc = function (resId) return seqGetSlicePos(resId,38870101,1) end, makeFunc = function (resId,pos) return seqMakeResSlice(resId,pos,38870101,1) end, len = 9},
{name = "main", inFunc = "beginsWith(%s, '388702')", posFunc = function (resId) return seqGetSlicePos(resId,38870201,1) end, makeFunc = function (resId,pos) return seqMakeResSlice(resId,pos,38870201,1) end, len = 15},
{name = "main", inFunc = "beginsWith(%s, '388710')", posFunc = function (resId) return seqGetSlicePos(resId,38871001,1) end, makeFunc = function (resId,pos) return seqMakeResSlice(resId,pos,38871001,1) end, len = 11},
{name = "main", inFunc = "beginsWith(%s, '388711')", posFunc = function (resId) return seqGetSlicePos(resId,38871101,1) end, makeFunc = function (resId,pos) return seqMakeResSlice(resId,pos,38871101,1) end, len = 11},
{name = "main", inFunc = "beginsWith(%s, '388712')", posFunc = function (resId) return seqGetSlicePos(resId,38871201,1) end, makeFunc = function (resId,pos) return seqMakeResSlice(resId,pos,38871201,1) end, len = 11},
{name = "main", inFunc = "beginsWith(%s, '388720')", posFunc = function (resId) return seqGetSlicePos(resId,38872001,1) end, makeFunc = function (resId,pos) return seqMakeResSlice(resId,pos,38872001,1) end, len = 5},
{name = "main", inFunc = "beginsWith(%s, '388721')", posFunc = function (resId) return seqGetSlicePos(resId,38872101,1) end, makeFunc = function (resId,pos) return seqMakeResSlice(resId,pos,38872101,1) end, len = 5},
{name = "main", inFunc = "beginsWith(%s, '388722')", posFunc = function (resId) return seqGetSlicePos(resId,38872201,1) end, makeFunc = function (resId,pos) return seqMakeResSlice(resId,pos,38872201,1) end, len = 5},
{name = "main", inFunc = "beginsWith(%s, 'a')", posFunc = seqGetModelSubGrpPos, makeFunc = seqMakeResModelSubGrp, len = 7, rev = 1},
{name = "lvl", inFunc = "beginsWith(%s, 'a')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 27},
{name = "main", inFunc = "beginsWith(%s, 'b')", posFunc = seqGetModelSubGrpPos, makeFunc = seqMakeResModelSubGrp, len = 7, rev = 1},
{name = "lvl", inFunc = "beginsWith(%s, 'b')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 9},
{name = "main", inFunc = "beginsWith(%s, 'c')", posFunc = seqGetModelSubGrpPos, makeFunc = seqMakeResModelSubGrp, len = 7, rev = 1},
{name = "lvl", inFunc = "beginsWith(%s, 'c')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 15},
{name = "main", inFunc = "beginsWith(%s, 'd')", posFunc = seqGetModelSubGrpPos, makeFunc = seqMakeResModelSubGrp, len = 7, rev = 1},
{name = "lvl", inFunc = "beginsWith(%s, 'd')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 11},
{name = "main", inFunc = "beginsWith(%s, 'e')", posFunc = seqGetModelSubGrpPos, makeFunc = seqMakeResModelSubGrp, len = 7, rev = 1},
{name = "lvl", inFunc = "beginsWith(%s, 'e')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 11},
{name = "main", inFunc = "beginsWith(%s, 'f')", posFunc = seqGetModelSubGrpPos, makeFunc = seqMakeResModelSubGrp, len = 7, rev = 1},
{name = "lvl", inFunc = "beginsWith(%s, 'f')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 11},
{name = "main", inFunc = "beginsWith(%s, 'g')", posFunc = seqGetModelSubGrpPos, makeFunc = seqMakeResModelSubGrp, len = 7, rev = 1},
{name = "lvl", inFunc = "beginsWith(%s, 'g')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 5},
{name = "main", inFunc = "beginsWith(%s, 'h')", posFunc = seqGetModelSubGrpPos, makeFunc = seqMakeResModelSubGrp, len = 7, rev = 1},
{name = "lvl", inFunc = "beginsWith(%s, 'h')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 5},
{name = "main", inFunc = "beginsWith(%s, 'i')", posFunc = seqGetModelSubGrpPos, makeFunc = seqMakeResModelSubGrp, len = 7, rev = 1},
{name = "lvl", inFunc = "beginsWith(%s, 'i')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 5},
{name = "main", inFunc = "beginsWith(%s, 'za')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 34, loop = 1},
{name = "main", inFunc = "beginsWith(%s, 'zb')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 34, loop = 1},
{name = "main", inFunc = "beginsWith(%s, 'zc')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 34, loop = 1},
{name = "main", inFunc = "beginsWith(%s, 'zd')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 34, loop = 1},
{name = "main", inFunc = "beginsWith(%s, 'ze')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 10},
{name = "main", inFunc = "beginsWith(%s, 'zf')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 36, loop = 1, rev = 1},
{name = "main", inFunc = "beginsWith(%s, 'zg')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 34, loop = 1, rev = 1},
{name = "main", inFunc = "beginsWith(%s, 'zh')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 7},
{name = "main", inFunc = "beginsWith(%s, 'zi')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 15, loop = 1, rev = 1},
{name = "main", inFunc = "beginsWith(%s, 'zj')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 36, loop = 1, rev = 1},
{name = "main", inFunc = "beginsWith(%s, 'zk')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 36, loop = 1, rev = 1},
{name = "main", inFunc = "beginsWith(%s, 'zl')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 36, loop = 1, rev = 1},
{name = "main", inFunc = "beginsWith(%s, 'zm')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 7},
{name = "main", inFunc = "beginsWith(%s, 'q')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 36, loop = 1, rev = 1},
{name = "lvl", inFunc = "beginsWith(%s, 'q')", posFunc = seqGetModelSubGrpPos, makeFunc = seqMakeResModelSubGrp, len = 22, pttl = layerTitles, sfclPos = 15},
{name = "main", inFunc = "beginsWith(%s, 'r')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 36, loop = 1, rev = 1},
{name = "lvl", inFunc = "beginsWith(%s, 'r')", posFunc = seqGetModelSubGrpPos, makeFunc = seqMakeResModelSubGrp, len = 22, pttl = layerTitles, sfclPos = 15},
{name = "main", inFunc = "beginsWith(%s, 't')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 36, loop = 1, rev = 1},
{name = "lvl", inFunc = "beginsWith(%s, 't')", posFunc = seqGetModelSubGrpPos, makeFunc = seqMakeResModelSubGrp, len = 22, pttl = layerTitles, sfclPos = 15},
{name = "main", inFunc = "beginsWith(%s, 'v')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 36, loop = 1, rev = 1},
{name = "lvl", inFunc = "beginsWith(%s, 'v')", posFunc = seqGetModelSubGrpPos, makeFunc = seqMakeResModelSubGrp, len = 22, pttl = layerTitles, sfclPos = 15},
{name = "main", inFunc = "beginsWith(%s, 'x')", posFunc = seqGetModelIndexPos, makeFunc = seqMakeResModelIndex, len = 36, loop = 1, rev = 1},
{name = "lvl", inFunc = "beginsWith(%s, 'x')", posFunc = seqGetModelSubGrpPos, makeFunc = seqMakeResModelSubGrp, len = 22, pttl = layerTitles, sfclPos = 15}
}
-----------------------------------
getSeqAttrib = function (resId, seqName, op, arg1)
local checkMatch = function (idx, seqInfo)
if seqInfo.name ~= %seqName then
return nil
end
if not dostring(format("return "..seqInfo.inFunc, "'"..%resId.."'")) then
return nil
end
return seqInfo
end
local seqInfo = foreachi(seqTable, checkMatch)
if not seqInfo then return nil end
if op == 'atrb' then return seqInfo[arg1] end
local pos = call(seqInfo.posFunc, {resId})
if seqInfo.rev then
pos = seqInfo.len - 1 - pos
end
if op == 'pos' then return pos end
if op == 'pttl' then
if not seqInfo.pttl then return "" end
return seqInfo.pttl[pos+1]
end
local newPos = pos
if op == 'next' then
newPos = pos + 1
elseif op == 'prev' then
newPos = pos - 1
elseif op == 'at' then
newPos = arg1
else
return nil
end
if newPos < 0 then
if seqInfo.loop then
newPos = seqInfo.len - 1
else
newPos = -1
end
elseif newPos >= seqInfo.len then
if seqInfo.loop then
newPos = 0
else
newPos = -1
end
end
if newPos == -1 then
return ""
end
if seqInfo.rev then
newPos = seqInfo.len - 1 - newPos
end
return call(seqInfo.makeFunc, {resId, newPos})
end
beginsWith = function (str, start)
return (strfind(str, start, 1, 1) == 1)
end
inRange = function (val, min, max)
val = tonumber(val)
if not val then return nil end
return ((val >= min) and (val <= max))
end
findResAttrib = function (resId, attribId)
local checkMatch = function (pattern, attribs)
if beginsWith(%resId, pattern) then
return attribs[%attribId]
end
return nil
end
result = foreach(resMap, checkMatch)
if not result then
result = ""
end
return result
end
splitModelResId = function (resId)
-- return group, layer, number
return strsub(resId, 1, 1), strsub(resId, 2, 2), strsub(resId, 3)
end
makeModelResId = function (group, layer, number)
return group..layer..format('%03d', number)
end
getModelImage = function (resId)
local group, layer, number = splitModelResId(resId)
return group.."\\"..layer.."\\s"..group..layer..number..".jpg"
end
getModelOverlay = function (resId)
local group, layer, number = splitModelResId(resId)
return group.."\\"..layer.."\\r"..group..layer..number..".png"
end
getModelTitle = function (groupTitle, resId)
local layer = strbyte(resId, 2) - strbyte("a") + 1
if layer >= 1 then
return groupTitle.." (Layer "..layer..")"
else
return groupTitle
end
end
getSliceModelTitle = function (groupTitle, resId)
local slice = getSeqPos(resId, "lvl") + 1
if slice >= 1 then
return groupTitle.." (Slice "..slice..")"
else
return groupTitle
end
end
getModelMrLink = function (mrSeqStart, resId)
local pos = getSeqAttrib(resId, "lvl", "pos")
return getSeqAttrib(mrSeqStart, "main", "at", pos)
end
getMrModelLink = function (csSeqStart, csSeqName, resId)
local pos = getSeqAttrib(resId, "main", "pos")
return getSeqAttrib(csSeqStart, csSeqName, "at", pos)
end
doAttribScript = function (resId, attribId)
result = ""
script = findResAttrib(resId, attribId)
if script ~= "" then
result = dostring(format("return "..script, "'"..resId.."'"))
end
return result
end
-----------------------------------
getTitle = function (resId)
return doAttribScript(resId, "t")
end
getThumb = function (resId)
return findResAttrib(resId, "th")
end
getClass = function (resId)
return findResAttrib(resId, "c")
end
getImage = function (resId)
return doAttribScript(resId, "i")
end
getOverlay = function (resId)
return doAttribScript(resId, "o")
end
getMrLink = function (resId)
return doAttribScript(resId, "mr")
end
getCsLink = function (resId)
return doAttribScript(resId, "cs")
end
getStartLink = function (resId)
return findResAttrib(resId, "s")
end
getSeqLength = function (resId, seqName)
local result = getSeqAttrib(resId, seqName, "atrb", "len")
if not result then return 0 end
return result
end
getSeqPos = function (resId, seqName)
local result = getSeqAttrib(resId, seqName, "pos")
if not result then return -1 end
return result
end
getSeqPosTitle = function (resId, seqName)
local result = getSeqAttrib(resId, seqName, "pttl")
if not result then return "" end
return result
end
getSeqValue = function (resId, seqName, pos)
local result = getSeqAttrib(resId, seqName, "at", tonumber(pos))
if not result then return "" end
return result
end
getSeqNext = function (resId, seqName)
local result = getSeqAttrib(resId, seqName, "next")
if not result then return "" end
return result
end
getSeqPrev = function (resId, seqName)
local result = getSeqAttrib(resId, seqName, "prev")
if not result then return "" end
return result
end
getSeqAttribute = function (resId, seqName, atrbName)
local result = getSeqAttrib(resId, seqName, "atrb", atrbName)
if not result then return "" end
return result
end